//
//  WhzCategoryViewController.m
//  WhzMT
//
//  Created by whz on 16/12/11.
//  Copyright © 2016年 whz. All rights reserved.
//

#import "WhzCategoryViewController.h"
#import "Header.h"
#import "WhzCategoryModel.h"

#define CELLIDLEFT @"cellIdLeft"
#define CELLIDRIGHT @"cellIdRight"

@interface WhzCategoryViewController () <UITableViewDelegate, UITableViewDataSource>

/** 分类的模型数组*/
@property(nonatomic, strong)NSArray<WhzCategoryModel *> *categoryModel;

/** 选中一级菜单的索引*/
@property(nonatomic, assign)NSInteger currentIndex;

@end

@implementation WhzCategoryViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self setupUI];
}

#pragma mark - 搭建界面

- (void)setupUI {
    
    self.popoverView.tableViewLeft.separatorStyle = UITableViewCellSeparatorStyleNone;
    self.popoverView.tableViewRight.separatorStyle = UITableViewCellSeparatorStyleNone;
    
    // 设置姿势图的 autoresizing 失效(在用 XIB 的时候设计此代码，横竖屏切换的时候，导航栏尺寸发生变化，导致 NavItem 会受到 Autoresizing 的影响，这时如果 NavItem 使用的自定义的 XIB 视图就会使界面产生变化)
    self.view.autoresizesSubviews = NO;

    // 设置代理和数据源
    self.popoverView.tableViewLeft.delegate = self;
    self.popoverView.tableViewLeft.dataSource = self;
    self.popoverView.tableViewRight.delegate = self;
    self.popoverView.tableViewRight.dataSource = self;
    
    // 加载数据
    [self loadData];
    
    // 注册cell
//    [self.popoverView.tableViewLeft registerClass:[UITableViewCell class] forCellReuseIdentifier:CELLIDLEFT];
//    [self.popoverView.tableViewRight registerClass:[UITableViewCell class] forCellReuseIdentifier:CELLIDRIGHT];
}

#pragma mark - 加载数据

- (void)loadData {

    NSArray *rootDictArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"categories.plist" ofType:nil]];
    self.categoryModel = [NSArray yy_modelArrayWithClass:[WhzCategoryModel class] json:rootDictArray];
}

#pragma mark - <UITableViewDelegate>

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    if (tableView == self.popoverView.tableViewLeft) {
        
        self.currentIndex = indexPath.row;
        
        [self.popoverView.tableViewRight reloadData];
        
    } else {
    
        NSLog(@"点击了二级菜单数据，%@",self.categoryModel[self.currentIndex].subcategories[indexPath.row]);
    }
}

#pragma mark - <UITableViewDataSource>

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    if (tableView == self.popoverView.tableViewLeft) {
        
        return self.categoryModel.count;
    
    } else {
        
        return self.categoryModel[self.currentIndex].subcategories.count;
    }
    
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell;
    
    if (tableView == self.popoverView.tableViewLeft) {
        
        cell = [tableView dequeueReusableCellWithIdentifier:CELLIDLEFT];
        
        if (cell == nil) {
            
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CELLIDLEFT];
            
            // 设置分割线
            cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_dropdown_leftpart"]];
            cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_dropdown_left_selected"]];
        }
        cell.textLabel.text = self.categoryModel[indexPath.row].name;
        cell.imageView.image = [UIImage imageNamed:self.categoryModel[indexPath.row].icon];
        cell.imageView.highlightedImage = [UIImage imageNamed:self.categoryModel[indexPath.row].highlighted_icon];
        
        // 设置箭头(优化没有子类的cell，因为cell会重用，所以需要设置一个else。)
        if (self.categoryModel[indexPath.row].subcategories) {
            
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
            
        } else {
        
            cell.accessoryType = UITableViewCellAccessoryNone;
        }
        
        return cell;
    
    } else {
    
        cell = [tableView dequeueReusableCellWithIdentifier:CELLIDRIGHT];
        
        if (cell == nil) {
            
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CELLIDRIGHT];
            
            // 设置分割线
            cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_dropdown_rightpart"]];
            cell.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_dropdown_right_selected"]];
        }
        cell.textLabel.text = self.categoryModel[self.currentIndex].subcategories[indexPath.row];
        
        return cell;
    }
}

#pragma mark - 懒加载

- (WhzPopoverView *)popoverView {

    if (_popoverView == nil) {
        
        _popoverView = [[WhzPopoverView alloc] init];
        
        // 添加视图
        [self.view addSubview:_popoverView];
    }
    return _popoverView;
}

@end
